<?php
/**
 * Created by PhpStorm.
 * User: yafex
 * Date: 2019/10/29
 * Time: 16:35
 */
class ctrl_ali_product extends L {

    /**
     * 描述 : 操作产品的页面展示
     * 作者 : Zoro.Zhu
    **/
    public function index() {
        $this->view->pubilcAccount = model_vsAccount::getAccountList('pdd');
        $this->display('/html/ali/product.html');
    }

    /**
     * 描述 : 根据1688的产品Id获取产品信息
     * 作者 : Zoro.Zhu
     * **/
    public function getInfo() {
        if(empty($_POST['id'])) {
            return array('state' => 300, 'info' => '产品ID不能为空');
        }
        if(empty($_POST['account'])) {
            return array('state' => 300, 'info' => '刊登账号不能为空');
        }
        set_time_limit(0);
        $id = trim($_POST['id']);
        if(model_aliProduct::getProductInfo($id)){
            return array('state' => 301, 'info' => '该产品已经刊登过了');
        }
        $data = serv_rapi_ali::getProduct($id, $_POST['account']);
        if(is_array($data)) {
            return array('state' => 200, 'info' => '获取成功', 'data' => $data);
        } else if(is_string($data)) {
            return array('state' => 400, 'info' => $data);
        } else {
            return array('state' => 400, 'info' => '操作失败，请重试或联系系统维护人员');
        }

    }

    /**
     * 描述 ：设置刊登账号
     * 作者 ：Zoro.Zhu
    **/
    public function setAccount(){
        if(!empty($_POST['account'])){
            $key = 'vsAccountPdd' . $_POST['cans'];
            of_base_com_kv::set($key, $_POST['account'], 86400);
            return array('state' => 200, 'info' => '选择成功');
        }
    }

    /**
     * 描述 ：获取账号
     * 作者 ：Zoro.Zhu
    **/
    public function getAccountPdd(){
        $account = model_vsAccount::getAccountList('pdd');
        $key = 'vsAccountPdd' . $_POST['cans'];
        $oldAccount = of_base_com_kv::get($key);
        return array('state' => 200, 'info' => '获取成功', 'data' => $account, 'oldAccount' => $oldAccount);
    }

    /**
     * 描述 ：获取插件传过来的产品Id
     * 作者 ：Zoro.Zhu
    **/
    public function getOfferId(){
//        file_put_contents(
//            ROOT_DIR . OF_DATA . '/mqTest.txt',
//            time() . print_r($_POST, true),
//            FILE_APPEND | LOCK_EX
//        );
        if(!empty($_POST['pageUrl'])){
            if(preg_match_all('/offer\/(\d+)\.html/', $_POST['pageUrl'], $match)){
                $id = $match[1][0];
                if(model_aliProduct::getProductInfo($id)){
                    return array('state' => 301, 'info' => '该产品已经刊登过了');
                }
                $account = of_base_com_kv::get('vsAccountPdd' . $_POST['cans']);
//                $account = 'pdd50116154684';
                if(!$account){
                    return array('state' => 303, 'info' => '请选择刊登账号');
                }
                $data = serv_rapi_ali::getProduct($id, $account);
                if(is_array($data)) {
                    return array('state' => 200, 'info' => '获取成功', 'data' => $data);
                } else if(is_string($data)) {
                    return array('state' => 400, 'info' => $data);
                } else {
                    return array('state' => 400, 'info' => '操作失败，请重试或联系系统维护人员');
                }
            }
        }
        return array('state' => 301, 'info' => '信息获取错误');
    }


    /**
     * 描述：导入产品
     * 作者：Zoro.Zhu
     **/
    public function importData(){
        //程序运行不限制时间
        ini_set('max_execution_time', '0');
        //配置内存2G
        ini_set('memory_limit', '2048M');
        $result = array (
            'state' => 0,
            'info' => '文件未上传'
        );
        if (!empty($_POST['file']) && is_array($_POST['file']) && !empty($_POST['account'])) {
            $path = ROOT_DIR . '/data' . $_POST['file'][0];
            $i = 0;
            $row = 0;
            $errorNUM = 0;
            //解析数据
            while ($data = &of_base_com_csv::parse($path)) {
                if($i == 0){
                    $i++;
                    continue;
                }
                $row++;
                if(!empty($data[0])){
                    $id = trim($data[0]);
                    if(model_aliProduct::getProductInfo($id)){
                        $errorNUM++;
                        continue;
                    }
                    $data = serv_rapi_ali::getProduct($id, $_POST['account']);
                    if(!is_array($data)) {
                        $errorNUM++;
                    }

                }else{
                    $errorNUM++;
                }
            }
            $result = array (
                "state" => 1,
                "info" => "总共选择" . ($row) . "条数据, 成功" . ($row - $errorNUM) . "条,失败" . $errorNUM . "条"
            );
        }
        return $result;
    }


}
return true;